Wireless communications devices such as the BlackBerry® by Research in Motion Limited enable users to download map content from web-based data sources such as BlackBerry Maps™, Google Maps™ or Mapquest™. Downloaded map content is displayed on a small LCD display screen of the wireless communications device for viewing by the user. The user can pan up and down and side to side as well as zoom in or out. Due to the small display on the device and due to the limited over-the-air (OTA) bandwidth, there is a need to optimize the delivery and handling of the map data.
With the increasing availability of wireless communications devices having onboard Global Positioning System (GPS) receivers for providing location-based services (LBS), the efficient delivery and handling of map data is increasingly important.
In some systems, map data, including label data for labelling map features, is communicated from map servers to wireless communications devices in discrete portions which are assembled client-side to provide the map content requested by the user. Typically, portions forming a path or other feature are stitched together prior to rendering so as to facilitate labelling. However, when reconstructing, for example, a path from discrete portions of data, however, redundant labelling can occur if labels associated with each portion of data are rendered for the same feature. Thus, the issue of label redundancy should be addressed either client-side and/or server-side. However, due to the limited over-the-air bandwidth and the limited onboard processing resources of most wireless devices, it is preferable to run computationally intensive algorithms server side in order to reduce the data traffic to the device as well as the onboard processing requirements.
In terms of labelling, a specific problem arises when labelling a Y-intersection where a single path splits into two branches, such as when a two-lane highway bifurcates into a divided four-lane highway. Each of the three path segments forming the Y-intersection could have its own label associated therewith. A current stitching technique compiles a list of all path segments with respective labels, searches the list of segments for identical labels and common endpoints, and then “blindly” stitches the first two segments it finds that have the same label and a common endpoint without determining whether the list contains any other segments having the same label and a common endpoint. If the two of the three paths are stitched based on this technique, the label may end up wrapping around onto itself if the application stitches together the two branches of the Y-intersection. When the label folds back onto itself, as illustrated in FIG. 6, the result is clearly unsatisfactory in terms of readability.
Accordingly, a technique to efficiently and aesthetically label Y-intersections (or any other map features where at least three path segments converge) remains highly desirable.
It will be noted that throughout the appended drawings, like features are identified by like reference numerals.